See Also

Udp Class  | Udp Members  | Overload List

Requirements

Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family

Language

Visual Basic

C#

C++

C++/CLI

Show All

buffer
A byte array containing the data to send.
offset
Starting offset within buffer for sending.
count
Number of bytes to send.
socketFlags
A bitwise combination of special use sending parameters.
host
The System.Net.IPEndPoint representing the remote hosts's IP address and port.
See Also Languages PowerTCP SSL Sockets for .NET

Send(Byte[],Int32,Int32,SocketFlags,IPEndPoint) Method

Dart.PowerTCP.SslSockets Namespace > Udp Class > Send Method : Send(Byte[],Int32,Int32,SocketFlags,IPEndPoint) Method

Send a datagram to the specified IPEndPoint, specifying a buffer, offset, length and SocketFlags value.

[Visual Basic]
<DescriptionAttribute("Send a datagram from your buffer.")> Overloads Public Function Send( _    ByVal buffer() As Byte, _    ByVal offset As Integer, _    ByVal count As Integer, _    ByVal socketFlags As SocketFlags, _    ByVal host As IPEndPoint _ ) As Datagram
[C#]
[DescriptionAttribute("Send a datagram from your buffer.")] public Datagram Send(    byte[] buffer,    int offset,    int count,    SocketFlags socketFlags,    IPEndPoint host );
[C++]
[DescriptionAttribute("Send a datagram from your buffer.")] public: Datagram* Send(    byte[]* buffer,    int offset,    int count,    SocketFlags socketFlags,    IPEndPoint* host )
[C++/CLI]
[DescriptionAttribute("Send a datagram from your buffer.")] public: Datagram^ Send(    bytearray<buffer>^ buffer,    int offset,    int count,    SocketFlags socketFlags,    IPEndPoint^ host )

Parameters

buffer
A byte array containing the data to send.
offset
Starting offset within buffer for sending.
count
Number of bytes to send.
socketFlags
A bitwise combination of special use sending parameters.
host
The System.Net.IPEndPoint representing the remote hosts's IP address and port.

Return Type

A Datagram object encapsulating the datagram sent.

Exceptions

ExceptionDescription
ArgumentNullExceptionbuffer is null.
SocketExceptionThe remote address is unknown, invalid, or unable to be resolved.
ArgumentOutOfRangeExceptionThe remote port is out of the range of valid values.
--or--
offset or count is less than 0.
ArgumentExceptionoffset + count is greater than the length of buffer.

Remarks

Use the Udp.Send method to sent a datagram created from the data contained in buffer to the specified host.

A UDP datagram provides little functionality over an IP datagram, adding a port number field which allows multiplexing on the receiving host and checksum field which provides basic error handling. Unlike TCP, UDP datagrams are sent as a unit. If Udp.Send is called 3 times to send 3 datagrams to a host, the receiving host will have to call Receive 3 times. Also, the size of each datagram sent will equal the size of each datagram received by the receiving host. In addition, since UDP is a connectionless protocol, any datagrams sent to the host are not guaranteed to be delivered. Therefore, any required error checking (outside of UDP's checksum implementation) will have to be done by the application-layer protocol.

To send a broadcast datagram, use "255.255.255.255" as the remote address. To sent a multicast datagram, use the multicast group address as the remote address after first joining a multicast group by using Udp.JoinMulitcastGroup.

Example

The following example demonstrates creating a UDP echo server application which listens for datagrams and echoes them back to the sender.

[Visual Basic] 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
   ' Listen for datagrams on port 7.
   Udp1.Open(7)

   ' Begin an asynchronous Receive
   Dim buffer(Udp1.BufferSize) As Byte
   Udp1.BeginReceive(buffer)
End Sub

Private Sub Udp1_EndReceive(ByVal sender As Object, ByVal e As DatagramEventArgs) Handles Udp1.EndReceive

   ' Check for an Exception
   If e.Exception is Nothing Then
      ' Echo the data back using the Datagram object passed into the event.
      ' Datagram.Buffer = data received from client
      ' Datagram.RemoteEndPoint = address/port of client.
      Udp1.Send(e.Datagram.Buffer, e.Datagram.RemoteEndPoint)
   End If

   ' Start receiving next
   Dim buffer(Udp1.BufferSize) As Byte
   Udp1.BeginReceive(buffer)

End Sub

[C#] 


private void StartServer()
{            
  
// Listen for datagrams on port 7.
  
udp1.Open(7);

  
// Begin an asynchronous Receive
  
byte[] buffer = new byte[udp1.BufferSize];
  udp1.BeginReceive(buffer);
}

private void udp1_EndReceive(object sender, DatagramEventArgs e)
{
  
// Check for an exception
  
if(e.Exception == null)
  {
     
// Echo the data back using the Datagram object passed into the event.
     
// Datagram.Buffer = data received from client
     
// Datagram.RemoteEndPoint = address/port of client.
     
Datagram d = udp1.Send(e.Datagram.Buffer, e.Datagram.RemoteEndPoint);
  }        
  
// Start receiving next
  
byte[] buffer = new byte[udp1.BufferSize];
  udp1.BeginReceive(buffer);
}
                

Requirements

Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family

See Also

Udp Class  | Udp Members  | Overload List


Send comments on this topic.

Documentation version 1.1.2.0.

© 2008 Dart Communications.  All rights reserved.